梦想不会自己发光,真正闪耀的是那个为梦狂奔的你。献给知行的孩子们!(Eric.He著)
本教程将从 C++ 循环结构的核心概念、for循环的语法定义、使用方式到进阶技巧,全面拆解 C++ for循环的核心用法,帮助你掌握这一基础且重要的流程控制工具。
C++ 中的循环结构是流程控制语句的核心类型之一,它允许程序在满足特定条件的情况下,重复执行一段代码块,直到条件不满足时停止。循环结构能够大幅减少重复代码的编写,提升程序的效率和可读性,是实现批量处理、迭代遍历等功能的基础。
| 循环类型 | 核心特点 | 适用场景 |
|---|---|---|
| for 循环 | 结构化强,将初始化、条件判断、更新操作集中在一处 | 已知循环次数的场景(如遍历数组、固定次数的迭代) |
| while 循环 | 先判断条件再执行,条件表达式单独定义 | 未知循环次数,仅知道终止条件的场景 |
| do-while 循环 | 先执行一次循环体,再判断条件 | 至少需要执行一次的循环场景 |
for循环是C++中最常用的循环结构,尤其适合以下场景:
for循环将初始化、条件判断、更新操作三个核心步骤集中在循环头部,结构清晰且易于维护:
for (初始化表达式; 条件表达式; 更新表达式) {
// 循环体:满足条件时重复执行的代码块
语句1;
语句2;
// ... 更多语句
}
各部分说明:
for循环的执行步骤遵循固定顺序,可总结为「初始化→判断→执行→更新」的循环流程:
执行流程示例拆解:
// 打印1到3的整数
for (int i = 1; i <= 3; i++) {
cout << i << endl;
}
执行步骤:
需求:打印5次「Hello C++ For Loop!」
#include <iostream>
using namespace std;
int main() {
// 循环变量i从0开始,执行5次(0-4)
for (int i = 0; i < 5; i++) {
cout << "Hello C++ For Loop! 第" << i+1 << "次" << endl;
}
return 0;
}
输出结果:
Hello C++ For Loop! 第1次
Hello C++ For Loop! 第2次
Hello C++ For Loop! 第3次
Hello C++ For Loop! 第4次
Hello C++ For Loop! 第5次
需求:计算1到100的整数累加和
#include <iostream>
using namespace std;
int main() {
int sum = 0; // 存储累加和
// 循环变量i从1到100,每次累加i到sum
for (int i = 1; i <= 100; i++) {
sum += i; // 等价于sum = sum + i
}
cout << "1到100的累加和:" << sum << endl; // 输出5050
return 0;
}
需求:遍历并打印数组中的所有元素
#include <iostream>
using namespace std;
int main() {
// 定义整型数组
int arr[5] = {10, 20, 30, 40, 50};
// 数组长度为5,循环变量i从0到4(数组下标从0开始)
for (int i = 0; i < 5; i++) {
cout << "数组第" << i+1 << "个元素:" << arr[i] << endl;
}
return 0;
}
输出结果:
数组第1个元素:10
数组第2个元素:20
数组第3个元素:30
数组第4个元素:40
数组第5个元素:50
初始化表达式支持多种写法,核心是完成循环变量的初始化,常见形式:
int i = 0;int i = 0, sum = 0;i = 0。
#include <iostream>
using namespace std;
int main() {
// 形式1:初始化多个变量
for (int i = 0, sum = 0; i <= 10; i++) {
sum += i;
cout << "i=" << i << ", sum=" << sum << endl;
}
// 形式2:使用外部已定义的变量
int j = 10;
for (j = 5; j > 0; j--) {
cout << "j=" << j << endl; // 打印5,4,3,2,1
}
return 0;
}
条件表达式只要能返回bool类型(true/false)即可,常见形式:
i < 10、i >= 0、i != 5;i > 0 && i < 10(i大于0且小于10);flag(flag为true时执行)。
#include <iostream>
using namespace std;
int main() {
// 条件为逻辑表达式:i大于0 且 是偶数
for (int i = 1; i <= 10 && i % 2 == 0; i++) {
cout << "偶数:" << i << endl; // 仅打印2
}
// 条件为bool变量
bool flag = true;
int count = 0;
for (int i = 0; flag; i++) {
count++;
if (count == 3) {
flag = false; // 执行3次后终止循环
}
cout << "执行第" << count << "次" << endl;
}
return 0;
}
更新表达式用于修改循环变量,常见形式:
i++(自增1)、i--(自减1)、++i;i += 2(步长2,每次加2)、i -= 3(步长3,每次减3);i++, sum += i。
#include <iostream>
using namespace std;
int main() {
// 步长2:打印1-10的奇数
for (int i = 1; i <= 10; i += 2) {
cout << "奇数:" << i << endl; // 1,3,5,7,9
}
// 多变量更新
int a = 0, b = 10;
for (; a < 5; a++, b -= 2) {
cout << "a=" << a << ", b=" << b << endl;
}
return 0;
}
输出结果:
奇数:1
奇数:3
奇数:5
奇数:7
奇数:9
a=0, b=10
a=1, b=8
a=2, b=6
a=3, b=4
a=4, b=2
break和continue是循环控制的关键字,用于灵活调整循环执行流程:
| 关键字 | 作用 | 示例场景 |
|---|---|---|
| break | 立即终止整个循环,跳出for结构 | 找到目标值后停止循环 |
| continue | 跳过当前循环体剩余语句,直接执行更新表达式 | 跳过不符合条件的元素,继续下一次循环 |
需求:遍历数组,找到值为30的元素后终止循环
#include <iostream>
using namespace std;
int main() {
int arr[5] = {10, 20, 30, 40, 50};
for (int i = 0; i < 5; i++) {
if (arr[i] == 30) {
cout << "找到目标值30,下标为:" << i << endl;
break; // 终止循环,后续元素不再遍历
}
cout << "遍历元素:" << arr[i] << endl;
}
return 0;
}
输出结果:
遍历元素:10
遍历元素:20
找到目标值30,下标为:2
需求:打印1-10的整数,跳过偶数
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue; // 跳过偶数,直接执行i++
}
cout << "奇数:" << i << endl;
}
return 0;
}
输出结果:
奇数:1
奇数:3
奇数:5
奇数:7
奇数:9
本教程从 C++ 循环结构的概念、for循环的语法定义、执行流程到进阶用法,全面拆解了for循环的核心知识点。掌握for循环的运用,是学习流程控制、批量数据处理的重要基础之一。